package estoquefacil

class Produto {
	enum TIPO_UNIDADE{ PESO , UNIDADE, COMPRIMENTO }
	
	String codigo
	String nome
	String marca
	Double valorDeCompra
	Double taxaDeLucro
	Integer quantidade
	Double valorDeVenda
	TIPO_UNIDADE unidade
	Estoque estoque

	static constraints = {
		codigo(unique:true, blank:false, matches:"[\\p{Digit}]+")
		nome(size:4..30, blank:false)
		valorDeCompra(blank:false, min:0D, scale:2)
		taxaDeLucro(blank:false, min:0D, max:100D, scale:2)
		quantidade(min:0I)
		estoque(blank:false)
		valorDeVenda(blank:false, validator:{val, obj -> return val == obj?.valorDeCompra + (obj?.valorDeCompra * obj?.taxaDeLucro)})
	}

	String toString() {
		"${this.codigo} : ${this.nome}"
	}
}
